package com.teaching.teachingsupport.service.service2;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.teachingsupport.common.pojo.dataobject.User;
import com.teaching.teachingsupport.common.pojo.dto.request.CreateUserRequest;
import com.teaching.teachingsupport.common.pojo.dto.response.UserPageResponse;
import org.springframework.security.core.userdetails.UserDetailsService;

public interface UserService extends IService<User>, UserDetailsService {
    User findByUsername(String username);
    Integer getTotalUserCount();
    Integer getDailyActiveUsers();
    
    /**
     * 分页查询用户列表
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @param roleType 用户角色类型（可选）
     * @param grade 年级（可选，仅当roleType为STUDENT时有效）
     * @param searchKey 搜索关键字（可选，可以是账号名或用户姓名）
     * @return 分页用户数据
     */
    Page<UserPageResponse> getUserPage(Integer pageNum, Integer pageSize, String roleType, String grade, String searchKey);

    /**
     * 创建新用户
     * @param request 创建用户请求
     * @return 创建是否成功
     */
    Boolean createUser(CreateUserRequest request);
}
